package com.zhiyou100.poly;

/**
 * 学生类
 * 通过extends继承Person，会自动将父类Person中的非私有的属性以及方法继承过来
 * 子类继承父类，会自动将父类中的非私有的属性以及方法继承过来
 * 同时，也可以有自己的属性和方法
 * 如果父类提供的方法满足不了子类的需求，子类可以通过方法重写，实现功能的完善
 * 方法重写：要求方法名称一致，参数列表一致，返回值类型一致，权限修饰符>= 原有的权限修饰符
 * 一旦重写方法后，子类对象再调用时，调用的就是自己的方法
 */
public class Student extends Person {

    String sNo;
    String major;

    //子类的无参构造默认调用了父类的无参构造   通过super()隐式的调用
    //如果父类没有无参构造，子类必须显示的调用父类的有参构造
    public Student() {
        super();
        System.out.println("子类Student的构造执行.......");
    }

    //如果我们想再子类构造中调用父类的有参构造
    public Student(String name, int age) {
        super(name, age);
    }


    //自己的自我介绍
    //此时子类重写父类的自我介绍方法
    public void introduction() {
        System.out.println("我叫" + name + ",今年" + age + ",性别" + sex + ",身份证号" + idCard +
                ",我的学号：" + sNo + ",专业" + major);
    }

    //在子类中再次声明父类的hello方法
    public static void hello() {
        System.out.println("学生，你好");
    }

}
